﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace dacli.modelos.dao
{
    class PedidoDetalleDAO : EntidadDao
    {
        public PedidoDetalle pedidoDetalle { get; set; }
        public Pedidos pedido;
        public PedidoDetalle asignarId(long id)
        {
            this.consultar("id=" + id);
            return this.pedidoDetalle;
        }
        public PedidoDetalleDAO(Pedidos pedido)
            : base("pedido_detalle")
        {
            this.pedido = pedido;
        }

        public long incluir(Conexion conexion)
        {
            string sql = "INSERT INTO " + this.tabla + " (examenes_id, pedidos_id, descuento, precio) values" +
            "(" + pedidoDetalle.examen.id + "," + pedido.id + "," + pedidoDetalle.descuento + "," + pedidoDetalle.precio + ")";
            return conexion.ejecutar(sql);
        }

        public override long incluir()
        {
            string sql = "INSERT INTO " + this.tabla + " (examenes_id, pedidos_id, descuento, precio) values" +
            "(" + pedidoDetalle.examen.id + "," + pedido.id + "," + pedidoDetalle.descuento + "," + pedidoDetalle.precio + ")";
            return conexion.ejecutar(sql);
        }

        public override long modificar()
        {
            throw new NotImplementedException();
        }

        public override long eliminar()
        {
            throw new NotImplementedException();
        }

        public override bool consultar(string filtro)
        {
            throw new NotImplementedException();
        }
        public List<PedidoDetalle> getDetalle()
        {
            List<PedidoDetalle> listaDetalle = new List<PedidoDetalle>();
            string sql = "SELECT * FROM " + this.tabla + " WHERE pedidos_id = " + pedido.id;
            System.Data.SqlClient.SqlDataReader reader = conexion.consultar(sql);
            while(reader.Read())
            {
                pedidoDetalle = new PedidoDetalle();
                ExamenesDAO examenesDao = new ExamenesDAO();
                examenesDao.consultar("id =" + reader.GetInt64(reader.GetOrdinal("examenes_id")));
                pedidoDetalle.descuento = reader.GetDouble(reader.GetOrdinal("descuento"));
                pedidoDetalle.examen = examenesDao.examenes;
                pedidoDetalle.precio = reader.GetDouble(reader.GetOrdinal("precio"));
                listaDetalle.Add(pedidoDetalle);
            }
            return listaDetalle;

        }
    }
}
